#!/usr/bin/perl -w

#  FILE:   controlNT.pl
#  AUTHOR: JOSE A. ESQUIVEL
#  DATE:   12/07/2002 ver (4.0)
#
#  DESCRIPTION: Muestra la barra de herramientas para hacer las antoaciones

#inicializar:
require ("init.pl");
require ("dbData.pl");
require ("dbNotes.pl");
require ("dbDes.pl");
require ("dbOpe.pl");
require ("dbUser.pl");
require ("dbEvent.pl");
require ("gui.pl");
require ("dbAssessment.pl");

require ("awPersistent.pl");

#Rutina para la recuperación o creación de la sesion de usuario
use CGI;
use CGI::Session;

my $cgi= new CGI;

#------------------ MANEJO DE SESION  --------------------------------
my $session = CGI::Session->load() or die CGI::Session->errstr();
if ( $session->is_expired || $session->is_empty) {
		#La sesion a caducado
    print $session->header(),
    		$cgi->start_html(),
      	$cgi->p("Sesion no válida"),
      	$cgi->end_html();
    exit(0);
}
#--------------------------------------------------------------------

#Se obtienen los datos de entrada
$dbName = $session->param(dbName);				#base de datos
$idUser = $session->param(idUsuario);		#Id usuario en sesion

#imprimir cabecera
print $session->header();



local(%input);

#Se procesa la entrada al script
my @params = $cgi->param();
foreach $name(@params){
	$input{$name} = $cgi->param($name);	
	#print $cgi->h1($name."=>".$input{$name});
}



# Variables globales al CGI

local ($dbLenguaje, $IMG, %TEXTOS, %textos, $DB_NOMBRE, $ID_TEMA, $ID_ESTRUCTURA, $ID_DESCRIPTION, $ID_AUTOR);
local ($URL_CANCELAR, $ULR_RETORNO, $URL_AYUDA, %datos_autor, @ideasNota);


sub _ImprimeJavaScript
{
    local ($paso, $valor_opcion, $url2) = @_;
    local (%datos);
    %datos = &get_data($dbLenguaje, "MyForm", "name", "\'addAssessmentControl\'");    
    print <<EOF1;

<script language="Javascript">
<!--
    
   

    function ShowMsg(txt)
    {
	if (txt != "")
	{
	    alert(txt);
	}
	return (false);
    }

    function Mostrar_Nota(url, nombre)
    {
	var kiosk;
	kiosk = window.open(url, nombre, 'resizable=no, scrollbars=yes, status=0, width=300, height=420');
	return false;
    }

    function Mostrar_Privadas(url, nombre)
    {
        var kiosk;
        kiosk = window.open(url, nombre, 'resizable=no, scrollbars=yes, status=0, width=300, height=420');
        return false;
    }
    
    function Rellenar()
	{
	
	}


    

EOF1
    ;
    if ($paso eq "1")
    {
	print <<EOF2;
    function SubmitForm(opcion)
    {
	var frmTotal = window.parent.frames;
	
	if ((opcion == 2) && ($valor_opcion == 0))
	{
	    ShowMsg("$TEXTOS{'dato'.2}");
	    return;
	}
	document.forma.op.value = opcion;
	if (opcion == 2)
	{
	    frmTotal[1].location = "$url2";
	}
	document.forma.submit();
    }
EOF2
    ;
    }
    if ($paso eq "3A")
    {
	print <<EOF3;
    function SubmitForm( )
    {
	if (document.forma.login.value == "")
	{
	    ShowMsg("$textos{'inData3'.1}");
	    document.forma.login.focus();
	    return (false);
	}
	if (document.forma.password.value == "")
	{
	    ShowMsg("$textos{'inData4'.1}");
	    document.forma.password.focus();
	    return (false);
	}
	if (document.forma.nota.value == "")
	{
	    ShowMsg("$textos{'inData5'.1}");
	    document.forma.nota.focus();
	    return (false);
	}	
	if (document.forma.typeNote.value == "NULL")
	{
	    ShowMsg("$textos{'fObservations'.1}");
	    document.forma.typeNote.focus();
	    return (false);
	}	
	return true;
    }
EOF3
    ;
    }
    
    if ($paso eq "3B")
    {
	%control=
	print <<EOF3_1;
    function SubmitForm( )
    {
	if(!document.forma.elemento0)
	{
	    if (document.forma.aspect.value == "NULL")
	    {
		ShowMsg("$datos{'inData'.1}");
		document.forma.aspect.focus();
		document.forma.correcto.value = "err";
		return (false);
	    }	
	    
	    else if (document.forma.element.value == "NULL")
	    {
		ShowMsg("$datos{'inData2'.1}");
		document.forma.element.focus();
		document.forma.correcto.value = "err";
		return (false);
	    }
	    
	    else if (document.forma.grade.value == "NULL")
	    {
		ShowMsg("$datos{'inData3'.1}");
		document.forma.grade.focus();
		document.forma.correcto.value = "err";
		return (false);
	    }
	}		
	return true;
    }
EOF3_1
    ;
    }
    
    
    
    
    print <<EOF4;
// -->
</script>
EOF4
    ;

}

sub _ImprimeCabecera
{
    local ($bandera, $texto, $focus) = @_;

    print <<EOF1;
        <HTML>
        <HEAD>
EOF1
    ;
    $FASE = 1;
    if ($ID_ESTRUCTURA > 0)
    {
	$fase = 0;
    }
    &ponerTitulo("$titulo{general.1}", $DB_NOMBRE, $FASE, $ID_TEMA, $ID_ESTRUCTURA);
    print "</HEAD>";
    if ($bandera == 0)
    {
	print "\n<BODY BGCOLOR=\"#FFFFFF\" BACKGROUND=\"../" . $IMG . "/kc.gif\" $texto>";
    }
    else
    {
	print "\n<BODY BGCOLOR=\"#FFFFFF\" BACKGROUND=\"../img/kc.gif\" onload=\"alert(\'$texto\');document.forma.$focus.focus();\">";
    }
}


sub _ImprimeOcultosGenerales
{
    local ($noPaso, $opcion) = @_;
    local ($texto);
    
    $texto = "onsubmit = \"return SubmitForm( );\"";
    
    print <<EOF1;
        <FORM NAME="forma"  METHOD="POST" ENCTYPE="multipart/form-data" ACTION ="controlNT2.pl" $texto>
	     <INPUT TYPE="HIDDEN" NAME="b"  VALUE=$DB_NOMBRE>
	     <INPUT TYPE="HIDDEN" NAME="t"  VALUE=$ID_TEMA>
	     <INPUT TYPE="HIDDEN" NAME="s"  VALUE=$ID_ESTRUCTURA>
	     <INPUT TYPE="HIDDEN" NAME="d"  VALUE=$ID_DESCRIPCION>
	     <INPUT TYPE="HIDDEN" NAME="u"  VALUE=$ID_AUTHOR>
	     <INPUT TYPE="HIDDEN" NAME="op" VALUE=$opcion>
	     <INPUT TYPE="HIDDEN" NAME="p" VALUE=$noPaso>
EOF1
    ;
}

sub _ImprimeCabeceraFormulario
{  
    local ($nombre_tema) = @_;
    local (%datos,$titulo, $urld);
   #Modificado 2-12-2003 -> Aniadir URLD en datos de descripcion de documento.
    %datos = &get_data($DB_NOMBRE,"Description","idDescription",$ID_DESCRIPCION);
    $titulo=$datos{'idea'.1};
    $urld=$datos{'URLD'.1};
    
    print <<EOF1;
        <TABLE BGCOLOR=$spaceColors{'dark_'.1} WIDTH=100%>
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.8}</font></b>
        <TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"> $datos_autor{nameAuthor}</font></b> 
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.9}</font></b>
        <TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"> $datos_autor{dayD}</font></b>   
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.10}</font></b>
	<TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">
		<A HREF="mailto:$datos_autor{email}">$datos_autor{email}</A></font></b>
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.11}</font></b>
	<TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"> $nombre_tema</font></b>        


	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.12}</font></b>
        <TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"> $titulo</font></b>

	<TR><TD COLSPAN = "2">
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"><a href="$urld" target="_blank">URLD</a></font></b>
<tr><TD COLSPAN = "2">
	<P><HR>
	  
	</TD>
EOF1
    ;
}

sub _ImprimeCabeceraFormularioVersion
{  
    local ($nombre_tema, $txtVer) = @_;

    print <<EOF1;
        <TABLE BGCOLOR=$spaceColors{'dark_'.1} WIDTH=100%>
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.8}</font></b>
        <TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"> $datos_autor{nameAuthor}</font></b> 
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.9}</font></b>
        <TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"> $datos_autor{dayD}</font></b>   
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.10}</font></b>
	<TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">
		<A HREF="mailto:$datos_autor{email}">$datos_autor{email}</A></font></b>
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.11}</font></b>
	<TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"> $nombre_tema</font></b>        <TR><TD COLSPAN = "2">
	<TR><TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2">$TEXTOS{'dato'.13}</font></b>
        <TD>
	    <b><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="2"> $txtVer</font></b> 
<TR><TD COLSPAN = "2">
	<P><HR>
	</TD>
EOF1
    ;
}

sub _ImprimeFormularioPaso1
{
    &ImprimeBarraHerramientas($dbLenguaje, 1, 100, $TEXTOS{'dato'.3}, 1, $URL_CANCELAR, $URL_RETORNO, $URL_AYUDA);
    print <<EOF1;
    <TABLE BGCOLOR= $spaceColors{'bright_'.1} WIDTH=100%>
	  <TR><TD VALIGN="TOP">
	          
	          <BR><A HREF="javascript:SubmitForm(1)"><IMG SRC="../$IMG/note.gif" BORDER="0">
		      &nbsp;$TEXTOS{'dato'.4}<P></A>
	  	  <BR><A HREF="javascript:SubmitForm(2)"><IMG SRC="../$IMG/version.gif" BORDER="0">
		  &nbsp;$TEXTOS{'dato'.5}<P></A>
     </TABLE></table>
EOF1
    ;
}

sub _ImprimeBarra2
{
    local ($opcion) = @_;
    print "<TABLE BGCOLOR=$spaceColors{'bright_'.1} border=\"0\" width=\"100%\">";
    if ($opcion == 1)
    {
	$img_path = "../img/img_toolbar/";
	print   "\n<TD width=\"10\">";
	$imagen1 = $img_path . "add_note.gif";
	$imagen2 = $img_path . "add_note_sel.gif";
	&gui_declareIcon("add_note", $imagen1, $imagen2);
	print "<A HREF=\"javascript:document.forma.submit();\">";
	&gui_putIcon("add_note",$imagen1,"width=\"22\" height=\"21\" BORDER=\"0\"");
	print "</A></TD>";
    }
    print "</TABLE>";
}


sub _ImprimeFormularioPaso4A
{
local ($nombre_tema, %notas) = @_;

    $URL_AYUDA         =   &url_help($DB_NOMBRE,'consinfo.htm#consultar_anotaciones');

    &_ImprimeJavaScript("2A", 0);
    &_ImprimeCabecera(0);
    &_ImprimeOcultosGenerales (2, 1);
    &_ImprimeCabeceraFormulario($nombre_tema);
    &ImprimeBarraHerramientas($dbLenguaje, 1, 100,$TEXTOS{'dato'.4}, 1, $URL_CANCELAR, $URL_RETORNO, $URL_AYUDA);
	print <<EOF11;
<TABLE BGCOLOR= $spaceColors{'dark_'.1} WIDTH=\"100%\">
<TR><TD><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="4">$TEXTOS{'dato'.7}</font>
</TABLE>
EOF11
	;
    &_ImprimeBarra2(1);
    if ($notas{numRows} > 0)
    {
        print "<TABLE BGCOLOR= $spaceColors{'bright_'.1} WIDTH=\"100%\"><TD>";

        for ($i=1; $i<=$notas{numRows};$i++)
        {
            $nombreW  = "nota" . $notas{idNote.$i};
            $titulo   = "$notas{'nAuthor'.$i}-$notas{'dayN'.$i}&nbsp;/&nbsp;[ $notas{idNote.$i} ]";
            $url_nota = $path."note.pl?b=$DB_NOMBRE&s=$ID_ESTRUCTURA&t=$ID_TEMA&d=$ID_DESCRIPCION";
            $url_nota = $url_nota . "&n=$notas{idNote.$i}&u=ID_AUTHOR";
            $votos    = "[ $notas{'favour'.$i} -  $notas{'against'.$i} ]";

            print <<EOF11;
            <TR><TD><b><A HREF="#" onclick="Mostrar_Nota('$url_nota','$nombreW');">$titulo</b></A>&nbsp;
            <TD ALIGN="CENTER"><FONT COLOR="red">$votos</FONT>
EOF11
    ;
        }
        print "</TABLE></form></table>";
   }
}

############################
# Listado de las anotaciones realizadas
# 08/03/05
# Fernando Lopez Colino
# Anadir opcion para ver las privadas
############################
sub _ImprimeFormularioPaso2A
{
    local ($nombre_tema, %notas) = @_;
    local(%texto);
    %texto = &get_data($dbLenguaje, "MyForm", "name", "\'private-notes\'");
    $URL_AYUDA         =   &url_help($DB_NOMBRE,'consinfo.htm#consultar_anotaciones');
    
    &_ImprimeJavaScript("2A", 0);
    &_ImprimeCabecera(0);
    &_ImprimeOcultosGenerales (2, 1);
    &_ImprimeCabeceraFormulario($nombre_tema);
    &ImprimeBarraHerramientas($dbLenguaje, 1, 100,$TEXTOS{'dato'.4}, 1, $URL_CANCELAR, $URL_RETORNO, $URL_AYUDA);
    &_ImprimeBarra2(1);
    if ($notas{numRows} > 0)
    {
	print "<TABLE BGCOLOR= $spaceColors{'bright_'.1} WIDTH=\"100%\"><TD>";

	for ($i=1; $i<=$notas{numRows};$i++)
	{
	    $nombreW  = "nota" . $notas{idNote.$i};
	    $titulo   = "$notas{'nAuthor'.$i}-$notas{'dayN'.$i}&nbsp;/&nbsp;[ $notas{idNote.$i} ]"; 
	    $url_nota = $path."note.pl?b=$DB_NOMBRE&s=$ID_ESTRUCTURA&t=$ID_TEMA&d=$ID_DESCRIPCION";
	    $url_nota = $url_nota . "&n=$notas{idNote.$i}&u=$ID_AUTHOR";
	    $votos    = "[ $notas{'favour'.$i} -  $notas{'against'.$i} ]";

	    print <<EOF11;
	    <TR><TD><b><A HREF="#" onclick="Mostrar_Nota('$url_nota','$nombreW');">$titulo</b></A>&nbsp;
	    <TD ALIGN="CENTER"><FONT COLOR="red">$votos</FONT>
EOF11
    ;
    	}
	print "</TABLE>"
   }

## Acceso a anotaciones privadas
	%notas = &traer_notas_privadas($DB_NOMBRE, $ID_DESCRIPCION);
	if ($notas{numRows} > 0)
	{	
		print <<EOFfj1;		
		<TABLE BGCOLOR= $spaceColors{'dark_'.1} WIDTH="100%"></form>		
		<TR><TD><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="3">$texto{'inData'.1}</font></TD>
		<TR><TD><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="3">$texto{'inData2'.1}</font></TD>
		<FORM name="NotasPrivadas" action="controlNT2.pl" method="post">
		<INPUT type="HIDDEN" name="b" value="$DB_NOMBRE">
		<INPUT type="HIDDEN" name="d" value="$ID_DESCRIPCION">
		<INPUT type="HIDDEN" name="p" value="4">
		<INPUT type="HIDDEN" name="t" value=$ID_TEMA>
		<INPUT type="HIDDEN" name="u" value=$ID_AUTHOR>
		<INPUT type="HIDDEN" name="s" value=$ID_ESTRUCTURA>
		<TR><TD><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="3">$texto{'inData3'.1}</font>  <INPUT type="text" name="author"></TD>
		<TR><TD><font color = $titleColors{'bright_'.1} face="MS Sans Serif" size="3">$texto{'inData4'.1}</font><INPUT type="password" name="password"></TD>
		<TR><TD><INPUT type="submit" value="$texto{'inData5'.1}"></TD>
		</FORM>
		</TABLE>
		
EOFfj1
;		
	}
	print"</table>";
    
#	print "Anotaciones privaaadas";
    &_ImprimeFinal;
}

sub _ImprimeNotasB
{
    local (%notas) = @_;
    
    if ($notas{numRows} > 0)
    {

	print <<EOF10;
	<TR><TD COLSPAN=2><B>$textos{'subtitle'.1}
	<TR><TD><TD ALIGN="CENTER">$textos{'inData'.1}/<TD ALIGN="CENTER">$textos{'inData2'.1}</B>
EOF10
    ;

	for ($i=1; $i<=$notas{numRows};$i++)
	{
	    $nombreW  = "nota" . $notas{idNote.$i};
	    $titulo   = "$notas{'nAuthor'.$i}-$notas{'dayN'.$i}&nbsp;/&nbsp;[ $notas{idNote.$i} ]"; 
	    $url_nota = $path."note.pl?b=$DB_NOMBRE&s=$ID_ESTRUCTURA&t=$ID_TEMA&d=$ID_DESCRIPCION";
	    $url_nota = $url_nota . "&n=$notas{idNote.$i}&u=$ID_AUTHOR";
	    $votos    = "[ $notas{'favour'.$i} -  $notas{'against'.$i} ]";
	   
	    print <<EOF11;
	    <TR><TD><b><A HREF="#" onclick="Mostrar_Nota('$url_nota','$nombreW');">$titulo</b></A>&nbsp;
            <TD ALIGN="CENTER"><INPUT TYPE="RADIO" NAME="$notas{idNote.$i}" VALUE = 1 CHECKED>
	    <TD ALIGN="CENTER"><INPUT TYPE="RADIO" NAME="$notas{idNote.$i}" VALUE = -1>
EOF11
    ;
	}
    }
}

sub _ImprimeFormularioPaso2B
{
    local ($nombre_tema, $comentario, %notas) = @_;

    $URL_AYUDA         =   &url_help($DB_NOMBRE,'consinfo.htm#consultar_versiones');
    
    $msg = "onload = \"document.forma.login.focus();\"";
    &_ImprimeJavaScript("2B", 0);
    &_ImprimeCabecera(0, $msg);
    &_ImprimeOcultosGenerales (2, 2);
    &_ImprimeCabeceraFormularioVersion($nombre_tema, $comentario);
    &ImprimeBarraHerramientas($dbLenguaje,1,110,$TEXTOS{'dato'.5},1,$URL_CANCELAR,$URL_RETORNO,$URL_AYUDA);
    print "<TABLE BGCOLOR= $spaceColors{'bright_'.1} WIDTH=\"100%\"><TD>";
    &_ImprimeNotasB(%notas);
###Cambiado para pasar de 10 valores a 2 -> 07 - Octubre - 2003 
    $t = "\n<OPTION VALUE = 0 SELECTED>0 Min";
    foreach $i(1..4)
    {
	$t = $t . "\n<OPTION VALUE = $i>$i";
    }
    $t = $t . "\n<OPTION VALUE = 5>5 Max";    
#A sistituir por textos BD Contina no Contina    <TR><TD><TD ALIGN="CENTER">$textos{'inData'.1}/<TD ALIGN="CENTER">$textos{'inData2'.1}</B>
    print <<EOF1;
    <TR><TD COLSPAN="3">
	<P><HR>
	</TD>    
    <TR><TD><TD ALIGN="CENTER">$textos{'fFavour'.1}/<TD ALIGN="CENTER">$textos{'fAgainst'.1}</B>
    <TR><TD><BR><B>$textos{'inData3'.1}</B>
            <TD ALIGN="CENTER"><INPUT TYPE="RADIO" NAME="GC" VALUE = 1 CHECKED>
	    <TD ALIGN="CENTER"><INPUT TYPE="RADIO" NAME="GC" VALUE = 0>	
    <TR><TD><BR><B>$textos{'inData4'.1}</B> 
	<TD COLSPAN="2"><BR><SELECT NAME="GM">
		    $t
	        </SELECT>    	
    <TR><TD COLSPAN="3">
	<P><HR>
	</TD>    
    <TR><TD><BR><BR>$textos{'inData5'.1}
    <TR><TD>        <INPUT TYPE="TEXT"     NAME=\"login\"    SIZE=25  MAXLENGTH=100></TD>
    <TR><TD><BR><BR>$textos{'inData6'.1}
    <TR><TD>        <INPUT TYPE="PASSWORD" NAME=\"password\" SIZE=25  MAXLENGTH=100></TD>
    
EOF1
    ;
    print "</TABLE></TABLE></form>";
    &_ImprimeFinal;
}



###################################
# Formulario para insertar anotaciones
###################################
sub _ImprimeFormularioPaso3A
{
    local ($nombre_tema, $bandera, $msg, $focus, $login, $password, $typeNote, $nota, @assessments) = @_;
    local (%dataNotes, %tablaGeneral);

    %dataNotes = &get_NoteType($DB_NOMBRE);
   
    %tablaGeneral = &get_data($DB_NOMBRE,'GeneralData','idGeneralData',1);
    %texto = &get_data($dbLenguaje, "MyForm", "name", "\'controlNT2-ampliado.pl\'");
        
    &_ImprimeJavaScript("3A", 0);
    if ($bandera == 0)
    {
	$msg = "onload = \"document.forma.login.focus();\"";
    }
    &_ImprimeCabecera($bandera, $msg, $focus);
    &_ImprimeOcultosGenerales (3, 1);
    &_ImprimeCabeceraFormulario($nombre_tema);
    &ImprimeBarraHerramientas($dbLenguaje, 1, 110,$textos{'title'.1}, 1, $URL_CANCELAR, $URL_RETORNO, $URL_AYUDA);
     

    print <<EOF1;
    <TABLE BGCOLOR= $spaceColors{'bright_'.1} WIDTH="100%">
        <TR><TD>$textos{'subtitle'.1}<TR>
            <TD><INPUT TYPE="TEXT"     NAME="login"  value = "$login" SIZE=25  MAXLENGTH=100></TD>
	<TR><TD>$textos{'inData'.1} <TR>
            <TD><INPUT TYPE="PASSWORD" NAME="password" value = "$password" SIZE=25  MAXLENGTH=100></TD>

	<TR><TD>$textos{'inData10'.1} <TR><TD><SELECT NAME="typeNote">
EOF1
    ; 
    print "<OPTION width=35 VALUE=\"NULL\"> \n";
   
    # Mostrar cada opcion
    foreach $i (1 .. $dataNotes{numRows})
    {	
      $typeNote = $dataNotes{typeNote.$i};
      $descriptionNote = $dataNotes{descriptionNote.$i};

        print "<OPTION width=35 VALUE=\"$typeNote\"> $descriptionNote \n";
    }
    print "\n</SELECT></TD>";
    
    #Pasar como parametro las ideas ya escritas
  
   $fjq = $tablaGeneral{NoteAssessments.1};
   if($fjq == 1)
   {   
	   print"\n<TR><TD><HR>";
	   print"\n<TR><TD>$texto{'inData5'.1}"; #texto=mis ideas
	   #Mostrar las ideas ya escritas  
	   print"\n<UL>";
	   for ($i=0; $i<$#assessments; $i++)
	   {	   
		   print"\n<TR><TD><LI><B> $assessments[$i]</B>"; $i++;#Elemento
		   print" $assessments[$i] ";#Aspecto
		   $i++;
		   print" $assessments[$i] </TD>";#Adecuación
	   }
	   print"\n</UL>";
	   print"\n<TR><TD><HR>";
	   my $noAssessments =0;
	   $i=0; 
	   while ($i<=$#assessments)
	   {
		   print"\n<TR><TD><INPUT TYPE=HIDDEN name=\"elemento$noAssessments\" "; #Para identificar cada elemento
		   print "value=\"$assessments[$i]\">"; #El elemento 
		   print"\n<INPUT TYPE=HIDDEN name=\"aspecto$noAssessments\" "; #Para identificar cada aspecto
		   $i++; #tomar el aspecto	
		   print "value=\"$assessments[$i]\"></TD>"; #El aspecto
		   print"\n<INPUT TYPE=HIDDEN name=\"grado$noAssessments\" "; #Para identificar cada grado
		   $i++; #tomar el grado
		   print "value=\"$assessments[$i]\"></TD>"; #grado
		   $noAssessments++;
		   $i++;
	   }    
	   print"\n<INPUT TYPE=HIDDEN name=\"nAssessments\" value=\"$noAssessments\">";
   }
####################
# 08-03-5
# Anotaciones privadas
# Fernando Lopez Colino
##################
	
	$fjq = $tablaGeneral{privateNotes.1};
	if ($fjq == 1)
	{
		print "<TR><TD>$texto{'inData6'.1}</TD>"; #texto = anotacion solo para el autor
		print "<TR><TD>$texto{'inData7'.1}<INPUT TYPE=\"RADIO\" NAME=\"privada\" value = \"1\"></TD>";
		print "<TR><TD>$texto{'inData8'.1}<INPUT TYPE=\"RADIO\" NAME=\"privada\" value = \"0\" checked></TD>";
	}

    print <<EOF1_1;

        <TR><TD>$textos{'inData2'.1}<TR>
            <TD><TEXTAREA              NAME="nota" ROWS=15 COLS=30>$nota</TEXTAREA></TD>
    </TABLE></table></table></form>
EOF1_1
    ;     
    &_ImprimeFinal;
}

###################################
# Formulario para aniadir ideas
###################################
sub _ImprimeFormularioPaso3B
{
    local ($nombre_tema, $bandera, $msg, $focus, $element, $aspect, @assessments) = @_;    
    local (%dbElements, %dbAspects, %tablaGeneral);

    %dbElements = &get_elements($DB_NOMBRE);
    %dbAspects = &get_aspects($DB_NOMBRE,$element);
    %texto = &get_data($dbLenguaje, "MyForm", "name", "\'controlNT2-ampliado.pl\'");
    %texto_assessments = &get_data($dbLenguaje, "MyForm", "name", "\'addAssessmentControl\'");    
    &_ImprimeJavaScript("3B", 0);
    if ($bandera == 0)
    {
	$msg = "onload = \"document.forma.element.focus();\"";
    }
    &_ImprimeCabecera($bandera, $msg, $focus);
    &_ImprimeOcultosGenerales (3, 2);
    &_ImprimeCabeceraFormulario($nombre_tema);
    &ImprimeBarraHerramientas($dbLenguaje, 1, 101,$TEXTOS{'dato'.6}, 1, $URL_CANCELAR, $URL_RETORNO, $URL_AYUDA);

    print <<EOF1;
    <TABLE BGCOLOR= $spaceColors{'bright_'.1} WIDTH="100%">        
    <TR><TD>$texto_assessments{'inData4'.1} $texto_assessments{'inData8'.1}<TR><TD>$texto_assessments{'inData5'.1} <BR><SELECT NAME="element" onChange="document.forma.submit();">
EOF1
    ; 
    print "<OPTION width=50 VALUE=\"NULL\"> \n";

    # Mostrar cada elemento
    foreach $i (1 .. $dbElements{numRows})
    {
	$idElement=$dbElements{idElement.$i};
	if($dbLenguaje eq "KC_ESP")
	{
	    $nombre = $dbElements{nombre.$i};
	}
	else
	{
	    $nombre = $dbElements{name.$i};
	}
	if($nombre eq $element)
	{
	    print "<OPTION width=50 VALUE=\"$nombre\" SELECTED> $nombre\n";
	}
	else
	{   
	    print "<OPTION width=50 VALUE=\"$nombre\"> $nombre \n";
	}
    }
    
    print "</SELECT></TD>";

    print <<EOF1_11;
    
    <TR><TD>$texto_assessments{'inData6'.1} <BR><SELECT  NAME="aspect">
EOF1_11
	;
    print "<OPTION width=50 VALUE=\"NULL\"> \n";
  foreach $i (1 .. $dbAspects{numRows})
    {
	$idAspect=$dbAspects{idAspect.$i};
	if($dbLenguaje eq "KC_ESP")
	{
	    $nombre = $dbAspects{nombre.$i};
	}
	else
	{
	     $nombre = $dbAspects{name.$i};
	}

	print "<OPTION width=50 VALUE=\"$nombre\"> $nombre \n";
    }

    print <<EOF1_12;	
    </SELECT>
	</TD>
	<TD WIDTH="50%">$texto_assessments{'inData7'.1}: <SELECT NAME="grade">      
	
EOF1_12
    ;
   print "<OPTION width=25 VALUE=\"NULL\"> \n";
   
    foreach $i (1 .. 10)
    {      
      print "<OPTION width=15 VALUE=\"$i\"> $i \n";
    }
    print "</SELECT></TD>";
    
    print"\n<TR><TD><HR>";
        
    print "\n<TABLE BGCOLOR= $spaceColors{'bright_'.1} WIDTH=\"100%\">";    
    #Pasar como parametro las valoraciones ya escritas
    my $noAssessments =0;
    $i=0;
    while ($i<$#assessments)
    {
	print"\n<TR><TD><INPUT TYPE=HIDDEN name=\"elemento$noAssessments\" "; #para identificar cada elemento
	print "value=\"$assessments[$i]\">"; #Elemento...
	print"\n<INPUT TYPE=HIDDEN name=\"aspecto$noAssessments\" "; #para identificar cada aspecto
	$i++; #tomar el aspecto	
	print "value=\"$assessments[$i]\">"; #Aspecto...
	print"\n<INPUT TYPE=HIDDEN name=\"grado$noAssessments\" "; #para identificar cada grado
	$i++; #tomar el grado
	print "value=\"$assessments[$i]\"></TD>"; #grado
	$noAssessments++;
	$i++;
    }
    
  #Mostrar las ideas ya escritas
  print"\n<TR><TD>$texto_assessments{'inData4'.1}";
   print"\n<UL>";
   if($#assessments <= 0)
   {
   	print"\n<TR><TD><B>$texto{'inData3'.1}<\B>";
   }
   for ($i=0; $i<$#assessments; $i++)
   {
	   print"\n<TR><TD><LI><B> $assessments[$i]</B>"; $i++;
	   print" $assessments[$i] ";	   
	   $i++;
	   print" $assessments[$i] <TD>";
   }
   print"\n</UL>";
   print"\n<INPUT TYPE=HIDDEN name=\"nAssessments\" value=\"$noAssessments\">";
   print"\n<INPUT TYPE=HIDDEN name=\"correcto\" value=\"ok\">"; #para el javascript que comprueba si el formulario se ha rellenado correctamente
   print"<TR><TD>&nbsp";
   print"\n<TR><TD><INPUT TYPE=\"SUBMIT\" name=\"anotacion\" value=\"$texto{'inData4'.1}\"></TD>";
   print <<EOF1_1;
   </TABLE></table></form>
EOF1_1
    ; 
    &_ImprimeFinal;
}




sub _ImprimeMensaje
{
    local ($bandera, $nombre_tema, $msg, $error) = @_;

    $color = "green";
    if ($error == 1)
    {
	$color = "red";
    }
    if ($bandera == 1)
    {
 print <<EOF1;
    <HTML>
    <HEAD>
    </HEAD>
    <BODY BGCOLOR="#FFFFFF" BACKGROUND="../" . $IMG . "/kc.gif">
    <FORM NAME="forma"  METHOD="GET"  ACTION ="inter.pl" TARGET="inform">
	     <INPUT TYPE="HIDDEN" NAME="b" VALUE=$DB_NOMBRE>
	     <INPUT TYPE="HIDDEN" NAME="t" VALUE=$ID_TEMA>
	     <INPUT TYPE="HIDDEN" NAME="s" VALUE=$ID_ESTRUCTURA>
	     <INPUT TYPE="HIDDEN" NAME="d" VALUE=$ID_DESCRIPCION>
	     <INPUT TYPE="HIDDEN" NAME="u" VALUE=$ID_AUTHOR>
EOF1
    ;
    }
    else
    {
	print <<EOF2;
    <HTML>
    <HEAD>
    </HEAD>
    <BODY BGCOLOR="#FFFFFF" BACKGROUND="../" . $IMG . "/kc.gif">
    <FORM NAME="forma"  METHOD="POST"  ACTION ="controlNT2.pl">
	     <INPUT TYPE="HIDDEN" NAME="b" VALUE=$DB_NOMBRE>
	     <INPUT TYPE="HIDDEN" NAME="t" VALUE=$ID_TEMA>
	     <INPUT TYPE="HIDDEN" NAME="s" VALUE=$ID_ESTRUCTURA>
	     <INPUT TYPE="HIDDEN" NAME="d" VALUE=$ID_DESCRIPCION>
	     <INPUT TYPE="HIDDEN" NAME="u" VALUE=$ID_AUTHOR>
	     <INPUT TYPE="HIDDEN" NAME="p" VALUE=1>
	     <INPUT TYPE="HIDDEN" NAME="op" VALUE=1>
EOF2
    ;
    }
    &_ImprimeCabeceraFormulario ($nombre_tema);
    &ImprimeBarraHerramientas($dbLenguaje,1,0001,"",1,$URL_CANCELAR,$URL_RETORNO,$URL_AYUDA);
print <<EOFEND1;
    <TABLE BGCOLOR=$spaceColors{'bright_'.1} WIDTH=100%>
	<TD ALIGN=CENTER><FONT COLOR="$color">        
	<B> $msg </B></FONT>
    </TABLE></table>
    </FORM>
    </body>
EOFEND1
  ;

}


sub _ImprimeFinal
{  
    print <<EOF1;       
	</BODY>
	</HTML>
EOF1
    ;
}

sub _ProcedimientoPost
{
    local ($directorio, $pathDocumentos, $urlServidor);
    local (%datosTema, $opcion, $nuevo, $formulario, @assessmentsNota);
    
    use CGI;

    $q = new CGI;

    #Se obtienen los datos generales que han llegado al formulario
   
    $DB_NOMBRE       = $dbName;
    $ID_TEMA         = $input{t};
    $ID_ESTRUCTURA   = $input{s};
    $ID_DESCRIPCION  = $input{d};
    $noPaso          = $input{p};
    $opcion          = $input{op};
    
    $ID_AUTHOR       = $idUser;
    
    # Actualizacion del estado del usuario en las tablas de Interaction y LastInteraction
		UpdateLastInteraction($dbName,$idUser,$ID_TEMA,$ID_DESCRIPCION);


    #Obteniendo datos del tema y lenguaje a manejar
    ($dbLenguaje, $IMG) = &get_language($DB_NOMBRE);
    %datosTema = &_ObtenerDatosTema($DB_NOMBRE, $ID_TEMA, $ID_ESTRUCTURA);
    
    #Parametrizacion de opciones: sacar o no las ideas
    %tablaGeneral = &get_data($DB_NOMBRE,'GeneralData','idGeneralData',1);
      
    
    if ($ID_ESTRUCTURA == 0)
    {
	$inform = $path . "inform.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&u=$ID_AUTHOR";
	$descriptions = $path . "descriptions.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&u=$ID_AUTHOR";
    }
    if ($PHASE == 1)
    {
	$inform = $path . "inform.pl?b=$DB_NOMBRE&t=$ID_TEMA&u=$idAuthor";
	$descriptions = $path . "descriptions.pl?b=$DB_NOMBRE&t=$ID_ESTRUCTURA&u=$ID_AUTHOR";
    } 

    $URL_CANCELAR     =  "$inform\" TARGET=\"inform";
    $back             =  "inter.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&d=$ID_DESCRIPCION&u=$ID_AUTHOR";
    $URL_RETORNO      =  "$back\"   TARGET=\"inform";
    $URL_AYUDA        =   &url_help($DB_NOMBRE,'consinfo.htm#consultar_documentos');

   
    %datos_autor = &get_descriptionAuthor($DB_NOMBRE, $ID_DESCRIPCION);

    %TEXTOS = &get_text($dbLenguaje, "'controlNT2.pl'");
    
    #Viene de la primera pantalla
    if ($noPaso == 1)
    {
	#Se selecciono area de anotaciones
	if ($opcion == 1)
	{
	    %textos   = &get_data($dbLenguaje, "MyForm", "name", "\'add-notes.pl\'");
	    #traer anotaciones de la descripcion
	    %notas = &traer_notas_publicas($DB_NOMBRE, $ID_DESCRIPCION);
	    $back =  "controlNT2.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&d=$ID_DESCRIPCION&u=$ID_AUTHOR";
	    $URL_RETORNO =  "$back";
	    &_ImprimeFormularioPaso2A($datosTema{'nameTopic'.1}, %notas);
	}
	#Se selecciono area de versionado
	else
	{
	    %textos = &get_data($dbLenguaje, "MyForm", "name", "\'vote-version.pl\'");
	    #Traer los datos de la propuesta de version
	    %activeVersion  = &get_activeVersion ($DB_NOMBRE, $ID_DESCRIPCION);
	    #traer anotaciones de la descripcion
	    %notas = &traer_notas_publicas($DB_NOMBRE, $ID_DESCRIPCION);
	    &_ImprimeFormularioPaso2B($datosTema{'nameTopic'.1}, $activeVersion{note}, %notas);
	}
    }#if1
    if ($noPaso == 2)
    {
	#Se selecciono area de anotaciones
	if ($opcion == 1)
	{
	    %textos   = &get_data($dbLenguaje, "MyForm", "name", "\'add-notes.pl\'");
	    $back =  "controlNT2.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&d=$ID_DESCRIPCION&p=1&op=1&u=$ID_AUTHOR";
	    $URL_RETORNO =  "$back";
	    
            $fjq = $tablaGeneral{NoteAssessments.1};
	    if ($fjq == 0)####################################
	    {
		    &_ImprimeFormularioPaso3A($datosTema{'nameTopic'.1}, 0, "", "", "", "", "", "", @assessmentsNota);
	    } else
	    {
		    $URL_AYUDA        =   &url_help($DB_NOMBRE,'opininfo.htm');
		    &_ImprimeFormularioPaso3B($datosTema{'nameTopic'.1}, 0, "","", "", "","");
	    }
	}#if2
	#Se selecciono area de versionado
	else
	{
	    %textos = &get_data($dbLenguaje, "MyForm", "name", "\'vote-version.pl\'");
	    #Verificando permisos para votar la version
	    $login    = $q->param("login");
	    $password = $q->param("password");
	    ($puede, $idVotante, $msg)=&verificaPermisos($DB_NOMBRE,$ID_TEMA,$ID_DESCRIPCION,$login,$password);
	    $gCont = $q->param("GC");
	    $gMejo = $q->param("GM");

	    if ($puede == 0)
	    {
		#traer anotaciones de la descripcion
		%notas = &traer_notas_publicas($DB_NOMBRE, $ID_DESCRIPCION);
		#traer version activa
		%VersionActiva  = &get_activeVersion ($DB_NOMBRE, $ID_DESCRIPCION);
		&save_VersionVotation($DB_NOMBRE,$ID_DESCRIPCION,$VersionActiva{idVersion},$ID_TEMA,$idVotante, $gCont, $gMejo);
		&insert_historic ($DB_NOMBRE, "\'VoteVer\'", $idVotante, $ID_TEMA, $ID_DESCRIPCION, $VersionActiva{idVersion});
		foreach $i(1..$notas{numRows})
		{
		    $idNota = $notas{idNote.$i}; 
		    $voto   = $q->param("$idNota");
		    &vota_anotacion($DB_NOMBRE, $idVotante, $idNota, $voto, $ID_TEMA, 'CONTINUITY');
		}
		#Notificacion del evento
		$Datos{Accion} 	        = 32;     #Accion 32 es sVoteVersion
		$Datos{Autor}		= $idVotante;
		$Datos{Fecha}		= &get_date();
		$Datos{Valor1} 	        = $gCont;
		$Datos{Valor2}          = $gMejo;
		$Datos{Tema}            = $ID_TEMA;
		$Datos{Estructura}      = $ID_ESTRUCTURA;
		$Datos{Descripcion}	= $ID_DESCRIPCION;

		&notifyEventG ($DB_NOMBRE, %Datos);
		#Fin de la notificacion del evento
	    }#if3
	    
	    &_ImprimeMensaje(1, $datosTema{'nameTopic'.1}, $msg, $puede);
	}#else2
    }#if1
    if ($noPaso == 3)
    {
	#Se selecciono area de anotaciones
	if ($opcion == 1) #fin de la anotacion
	{
	    
	    $privateNote = 0;
	    
	    #Se leen parametros
	    $login  = $q->param("login");
	    $pwd    = $q->param("password");
	    $nota   = $q->param("nota");
	    $typeNote   = $q->param("typeNote");
	    $privateNote = $q->param("privada");
	    if(!defined($privateNote))
	    {
		    $privateNote =0;
	    }
	    	 
	    my $contador = $q->param("nAssessments");
	    for($i = 0; $i<$contador; $i++)
	    {
		    push(@assessmentsNota, $q->param("elemento$i"), $q->param("aspecto$i"), $q->param("grado$i"));		    
	    }
	    
	    %textos   = &get_data($dbLenguaje, "MyForm", "name", "\'add-notes.pl\'");
	    #Se identifica al usuario y sus derechos
	    ($errortxt, $error, $newuser) = &_UserIdentification($login, $pwd);
	    if (($error == 1) || ($newuser == 1))
	    {
		&_ImprimeMensaje(2, $datosTema{'nameTopic'.1}, $textos{'inData7'.1}, $error);
	    }#if3
	    else
	    {
		# Hubo un error de contrasenia ?
		if ($errortxt eq "\'errorPWD\'")
		{
		    #Se obtiene el mensaje a mostrar cuando esta se cargue nuevamente
		    %dMsgC = &get_data($dbLenguaje, "Message", "name", "\'errorData\'");
		    &_ImprimeFormularioPaso3A($datosTema{'nameTopic'.1}, 1, $dMsgC{'txt'.1},"password",$login,"",$typeNote,$typeNote, $nota,@assessmentsNota);
		}#if4
		else
		{
		    #Ver si la base de datos esta ocupada:
		    $busy = &get_busy($DB_NOMBRE);
		    if ($busy != 0)
		    {
			#Se obtiene el mensaje a mostrar cuando esta se cargue nuevamente
			%dMsgC = &get_data($dbLenguaje, "Message", "name", "\'busyDB\'");
			&_ImprimeFormularioPaso3A($datosTema{'nameTopic'.1}, 1, $dMsgC{'txt'.1},"password",$login,"",$typeNote,$nota,@assessmentsNota);
		    }#if5
		    else
		    {
			#sustituimos las comillas simples por otro caracter
			$nota =~ s/\'/\'\'/g;
			$idNota = &guarda_anotacion($DB_NOMBRE, $ID_AUTOR, $ID_DESCRIPCION, $ID_TEMA, $typeNote,$nota,$privateNote);
			#Almacenar las ideas asociadas a la anotacion
			$fjq = $tablaGeneral{NoteAssessments.1};
			if ($fjq == 1)
			{
			    &save_assessment($DB_NOMBRE,$ID_DESCRIPCION,$ID_AUTOR, @assessmentsNota);
			}
			
			
			&insert_historic($DB_NOMBRE,"\'AddNote\'",$ID_AUTOR,$ID_TEMA,$ID_DESCRIPCION,$idNota);
			$titulo = "$nAuthor - $dayN";
			
			#Notificacion de evento
			$Datos{Accion} 	         =  12;     #Accion 12 es sAddNote
			$Datos{Autor}		 = $ID_AUTOR;
			$Datos{Fecha}		 = &get_date();
			$Datos{Titulo}           = $titulo;
			$Datos{Tema}             = $ID_TEMA;
			$Datos{Estructura}       = $ID_ESTRUCTURA;
			$Datos{Descripcion}	 = $ID_DESCRIPCION;
						
			&notifyEvent ($DB_NOMBRE, %Datos);
			#Fin de notificacion de eventos
			
			&_ImprimeMensaje(2, $datosTema{'nameTopic'.1}, $textos{'inData6'.1}, $error);
		    }#else5
		}#else4
	    }#else3
	}#if2
	elsif($opcion == 2) #se continuan aniadiendo ideas
	{			
	    #Se leen los parametros ocultos
	    my $contador = $q->param("nAssessments");
	    
	    for($i = 0; $i<$contador; $i++)
	    {
		push(@assessmentsNota, $q->param("elemento$i"), $q->param("aspecto$i"), $q->param("grado$i"));
	    }
	    
	    $aspecto = $q->param("aspect"); #aspecto seleccionado por el usuario
	    $elemento = $q->param("element"); #elemento de la valoración 
	    $grado = $q->param("grade"); #grado de la valoración
	    if((($elemento ne "NULL")&&($aspecto ne "NULL"))&&($grado ne "NULL"))
	    {
		push(@assessmentsNota, $elemento, $aspecto, $grado); #se van apilando las ideas
            }
            
    	    $adelante = $q->param("anotacion");
	    $seguir = $q->param("correcto");
	    if (($adelante)  && ($seguir == "ok"))#si ha terminado de aniadir ideas se pasa a la anotacion
	    {
	    	%textos   = &get_data($dbLenguaje, "MyForm", "name", "\'add-notes.pl\'");
		&_ImprimeFormularioPaso3A($datosTema{'nameTopic'.1}, 0, "", "", "", "", "", "", @assessmentsNota);
	    } elsif($seguir == "ok")
	    {
		&_ImprimeFormularioPaso3B($datosTema{'nameTopic'.1}, 0, "","", $elemento, $aspecto, @assessmentsNota);
	    }
	}#elsif2
    }#if1
    if ($noPaso== 4)
    {
		#mostrar las anotaciones hechas solo para el autor
		#similar al formulario 2A
		%textos   = &get_data($dbLenguaje, "MyForm", "name", "\'add-notes.pl\'");
		$nombreUsuario = $q->param("author");
                $contrasena = $q->param("password");
		$autentificado = 0;
		
		%auxiliarfj = &get_data($DB_NOMBRE,"Description","idDescription",$ID_DESCRIPCION);
		%auxiliarfj = &get_data($DB_NOMBRE,"Author","idAuthor",$auxiliarfj{'idAuthor'.1});
		if ($nombreUsuario eq $auxiliarfj{"nameAuthor".1})
		{

			if ($contrasena eq $auxiliarfj{"password".1})
			{
				$autentificado = 1;
			}
		}
		
		if ($autentificado == 1)
		{


	            #traer anotaciones de la descripcion
        	    %notas = &traer_notas_privadas($DB_NOMBRE, $ID_DESCRIPCION);
	            $back =  "controlNT2.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&d=$ID_DESCRIPCION&u=$idAuthor";
        	    $URL_RETORNO =  "$back";
		$nombreUsuario = $q->param();
		$contrasena = $q->param();
	            &_ImprimeFormularioPaso4A($datosTema{'nameTopic'.1}, %notas);
		}
		else
		{
			&_ImprimeJavaScript("2A", 0);
			&_ImprimeCabecera(0);
			&_ImprimeOcultosGenerales (2, 1);
			&_ImprimeCabeceraFormulario($datosTema{'nameTopic'.1});
			&ImprimeBarraHerramientas($dbLenguaje, 1, 100,$TEXTOS{'dato'.4}, 1, $URL_CANCELAR, $URL_RETORNO, $URL_AYUDA);
			print <<EOFfj1;
			<TABLE BGCOLOR= $spaceColors{'bright_'.1} WIDTH=\"100%\"><TD>
			<TR><TD><font size=2>No estas autorizado</font></td></TABLE>
			</table></form></table>
EOFfj1
;
	
		}

		#comprobar la autentificacion
   }	
}

sub _ProcedimientoGet
{
    local ($noPaso, %datosTema);
    
    #Se procesa la entrada al script
   
    #Se obtienen los datos de entrada
    $DB_NOMBRE      = $dbName;  
    $ID_TEMA        = $input{t};
    $ID_ESTRUCTURA  = $input{s};
    $ID_DESCRIPCION = $input{d};
    
    $ID_AUTHOR = $idUser;
    
    #Actualizamos el estado del usuario en la tabla LastInteraction
    UpdateLastInteraction($dbName,$idUser,$ID_TEMA,$ID_DESCRIPCION);
   	
   
    #Obteniendo datos del tema y lenguaje a manejar
    ($dbLenguaje, $IMG) = &get_language($DB_NOMBRE);

    %datosTema = &_ObtenerDatosTema($DB_NOMBRE, $ID_TEMA, $ID_ESTRUCTURA);
    
    if ($ID_ESTRUCTURA == 0)
    {
	$inform = $path . "inform.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&u=$ID_AUTHOR";
	$descriptions = $path . "descriptions.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&u=$ID_AUTHOR";
    }
    if ($ID_ESTRUCTURA != 0)
    {
	$inform = $path . "inform.pl?b=$DB_NOMBRE&t=$ID_TEMA&u=$ID_AUTHOR";
	$descriptions = $path . "descriptions.pl?b=$DB_NOMBRE&t=$ID_ESTRUCTURA&u=$ID_AUTHOR";
    }
 
    $URL_AYUDA         =   &url_help($DB_NOMBRE,'consinfo.htm#consultar_documentos');
    
    $noPaso = $input{p};
    
    if ($noPaso == 1) #Viene de una ventana
    {
	$back =  "controlNT2.pl?b=$DB_NOMBRE&t=$ID_TEMA&s=$ID_ESTRUCTURA&d=$ID_DESCRIPCION&u=$ID_AUTHOR";
	$URL_RETORNO =  "$back";
	$URL_CANCELAR     =  "$inform\" TARGET=\"inform";
	%textos   = &get_data($dbLenguaje, "MyForm", "name", "\'add-notes.pl\'");
	#traer anotaciones de la descripcion
	%notas = &traer_notas_publicas($DB_NOMBRE, $ID_DESCRIPCION);
	&_ImprimeFormularioPaso2A($datosTema{'nameTopic'.1}, %notas);
	return;
    }

    $URL_RETORNO       =  "$inform\" TARGET=\"inform";
    $URL_CANCELAR      =  "$inform\" TARGET=\"inform";

    $noPaso = 1;

    %datos_autor = &get_descriptionAuthor($DB_NOMBRE, $ID_DESCRIPCION);

    #Verificando si la descripci� tiene propuesta una nueva versi�
    %versionActiva  = &get_activeVersion ($DB_NOMBRE, $ID_DESCRIPCION);
    
    %TEXTOS = &get_text($dbLenguaje, "'controlNT2.pl'");

    &_ImprimeJavaScript("1", $versionActiva{idVersion}, $versionActiva{URLV});
    &_ImprimeCabecera(0);
    &_ImprimeOcultosGenerales ($noPaso, 0);
    &_ImprimeCabeceraFormulario($datosTema{'nameTopic'.1});
    &_ImprimeFormularioPaso1;
    &_ImprimeFinal;
}

sub _Main
{
    #Imprime cabecera    
    if ('POST' eq $ENV{'REQUEST_METHOD'})
    {
	&_ProcedimientoPost;
    }  
    else
    {
	&_ProcedimientoGet;
    }
}

#******************************************************



# Funci� Main
&_Main;




#******************************************************

# Funciones auxiliares
sub _ObtenerDatosTema
{
    local($dbNombre, $idTema, $idEstructura) = @_;
    local(%dTema);

    #Se obtienen los datos del tema en cuestion
    if ($idEstructura > 0)
    {
	%dTema = &get_data($dbNombre, "Struct", "idTopic", $idTema);
    }
    else
    {
	%dTema = &get_data($dbNombre, "Topic", "idTopic", $idTema);
    }

    return %dTema;
  
}



sub _UserIdentification
{
    local ($login, $pwd) = @_;
    local ($errortxt, $exist, $correct, $approved, $windowerror, $newuser, %dAuthor);
    
    #Se incializan variables
    $exist       = 0;
    $correct     = 0;
    $approved    = 0;
    $rights      = 0;
    $windowerror = 0;
    $newuser     = 0;
    $errortxt    = "";

    #Se mira si el usuario tiene sus datos en la BdD
    %dAuthor = &get_data($DB_NOMBRE, "Author", "nameAuthor", "\'$login\'");

    #Existe el autor ?
    if ($dAuthor{numRows} > 0)
    {
	#El autor existe
	$exist = 1;
	#Se obtiene el identificador del autor
	$ID_AUTOR = $dAuthor{'idAuthor'.1};
	#El password es correcto ?
	if ($dAuthor{'password'.1} eq $pwd)
	{
	    #El password es correcto
	    $correct = 1;
	}
    }
    #El usuario entro anteriormente pero su password no es correcto ?
    if (($exist == 1) && ($correct == 0))
    {
	$errortxt = "\'errorPWD\'";
	return ($errortxt, $windowerror, $newuser);
    }
    #Revisar permiso para ejecutar la  operaci� de agregar archivos
   
    $approved = &operation_approved ($DB_NOMBRE, "\'$login\'", "AddDes");
    
    if ($approved == 0)
    {
	$windowerror = 1;
	$errortxt = "\'nusf\'";
    }
    else
    {
	$rights   = 1;
    }
    
    #Si es la primera vez que entra y tiene permisos para hacer la operaci�
    if (($exist == 0) && ($rights == 1))
    {
	$approved = &operation_approved ($DB_NOMBRE, "\'$login\'", "AddNewUser");
	if ($approved == 0)
	{
	    $windowerror = 1;
	    $errortxt = "\'nusf\'";
	}
	else
	{
	    $newuser = 1;
	}
    }
    return ($errortxt, $windowerror, $newuser);
}


sub verificaPermisos
{
    local ($dbNombre, $idTema, $idDescripcion, $login, $password) = @_;
    
    #Traer lista de expertos en el tema
    %expertos = &get_expertsOnTopic($dbNombre, $idTema); 
    %expertos = &get_whoVotDoc($dbNombre, $idTema);

    $CORRECTO = 0; $EXISTE = 0;
    %dAutor = &get_data($dbNombre, "Author", "nameAuthor", "\'$login\'");
    if ($dAutor{numRows} > 0)
    {
	#Existe el author
	$EXISTE = 1;
	$idAutor = $dAutor{'idAuthor'.1};
	if ($dAutor{'password'.1} eq $password)
	{
	    $CORRECTO = 1;
	}
    }
    
    if (($CORRECTO == 1) && ($EXISTE == 1))
    {
	#Verificando que este en la lista
	$PUEDE = 1;
	foreach $i(1..$expertos{numRows})
	{
	    if ($expertos{idAuthor.$i} == $idAutor)
	    {
		$PUEDE = 0;
	    }
	}
	#Traer datos de la descripcion
	%des = &get_data($dbNombre, "Description", "idDescription", "$idDescripcion");
	if ($des{"idAuthor".1} == $idAutor)
	{
	    $PUEDE = 1;
	}
	$msg = $textos{'inData7'.1};
	if ($PUEDE == 1)
	{
	    $msg = $textos{'inData8'.1};
	}
    }
    else
    {
	$PUEDE = 1;
	$msg   = $textos{'inData9'.1};    
    }
    
    return ($PUEDE, $idAutor, $msg);

} 
